package template.service;

import java.util.List;

import template.dao.IBaseDao;


/**
 * 基础接口IBaseService的具体实现类。
 * 本类定义了业务数据处理的基本方法。
 * 其他类只需继承该类即可。
 * @ClassName BaseService
 * @version 1.0
 * */
public class BaseServiceImpl implements IBaseService{
	
	private IBaseDao baseDao;

	/**
	 * 保存记录
	 * */
	public void save(Object obj){
		this.getBaseDao().save(obj);
	}
	
	/**
	 * 更新记录
	 * */
	public void update(Object obj){
		this.getBaseDao().update(obj);
	}
	
	/**
	 * 删除记录
	 * */
	public void remove(Object obj){
		this.getBaseDao().remove(obj);
	}
	
	/**
	 * 根据记录编号及持久类类名查找一条记录
	 * */
	public Object findById(Long id,Class className){
		return this.getBaseDao().findById(id,className);
	}
	
	/**
	 * 根据hql语句获取总共记录数
	 * */
	public int getTotal(String hql){
		return this.getBaseDao().getTotal(hql);
	}
	
	/**
	 * 由hql语句获取所有记录列表。
	 * */
	public List getRecordList(String hql){
		return this.getBaseDao().getRecordList(hql);
	}
	
	/**
	 * 标准getter方法
	 * */
	public IBaseDao getBaseDao(){
		return baseDao;
	}
	
	/**
	 * 标准setter方法
	 * */
	public void setBaseDao(IBaseDao baseDao){
		this.baseDao = baseDao;
	}

	public int updateByHql(String hql) {
		return this.getBaseDao().updateByHql(hql);
	}
	
	public List getPageListBySql(String sql, Class clazz,int firstResult,int maxResults){
		return this.getBaseDao().queryBySql(sql, clazz, firstResult, maxResults);
	}
	
	public List queryBySql(String sql,Class clazz){
		return this.getBaseDao().queryBySql(sql, clazz);
	}
	
	public int getTotalBySql(String sql){
		return this.getBaseDao().getTotalBySql(sql);
	}
	
	
}